<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>数组转对象</title>
  <script>
    // 18. 数组转对象
    // ['a','a','a','b','b','c','c','c','c','d','d','d','d'] ---> 
    // {
    //     a: 3,
    //     b: 2,
    //     c: 4,
    //     d: 4
    // }
    function work18(x) {
      // 创建中间对象
      var xdx = {};
      // 循环遍历数组
      for (let i = 0; i < x.length; i++) {
        //获取当前数据
        var me = x[i];
        //判断对象中是否存在和数据同名的属性
        if (xdx[me]) {
          //满足条件，属性值+1
          xdx[me] = xdx[me] + 1;
        } else {
          // 否则，创建属性，并让属性值等于1
          xdx[me] = 1;
        }
      }
      //中间对象赋值给x
      x = xdx;
      // 返回x
      return x;
    }
    //调用
    console.log(work18(['a', 'a', 'a', 'b', 'b', 'c', 'c', 'c', 'c', 'd', 'd', 'd', 'd']));
  </script>
</head>

<body>

</body>

</html>